package net.expectx.micro.shop.dao.bean;

import net.expectx.common.single.base.BaseExample;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

public class ProductProductExample extends BaseExample implements Serializable {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    private static final long serialVersionUID = 1L;

    public ProductProductExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria implements Serializable {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Long value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Long value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Long value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Long value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Long value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Long value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Long> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Long> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Long value1, Long value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Long value1, Long value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andProductCategoryIdIsNull() {
            addCriterion("product_category_id is null");
            return (Criteria) this;
        }

        public Criteria andProductCategoryIdIsNotNull() {
            addCriterion("product_category_id is not null");
            return (Criteria) this;
        }

        public Criteria andProductCategoryIdEqualTo(Long value) {
            addCriterion("product_category_id =", value, "productCategoryId");
            return (Criteria) this;
        }

        public Criteria andProductCategoryIdNotEqualTo(Long value) {
            addCriterion("product_category_id <>", value, "productCategoryId");
            return (Criteria) this;
        }

        public Criteria andProductCategoryIdGreaterThan(Long value) {
            addCriterion("product_category_id >", value, "productCategoryId");
            return (Criteria) this;
        }

        public Criteria andProductCategoryIdGreaterThanOrEqualTo(Long value) {
            addCriterion("product_category_id >=", value, "productCategoryId");
            return (Criteria) this;
        }

        public Criteria andProductCategoryIdLessThan(Long value) {
            addCriterion("product_category_id <", value, "productCategoryId");
            return (Criteria) this;
        }

        public Criteria andProductCategoryIdLessThanOrEqualTo(Long value) {
            addCriterion("product_category_id <=", value, "productCategoryId");
            return (Criteria) this;
        }

        public Criteria andProductCategoryIdIn(List<Long> values) {
            addCriterion("product_category_id in", values, "productCategoryId");
            return (Criteria) this;
        }

        public Criteria andProductCategoryIdNotIn(List<Long> values) {
            addCriterion("product_category_id not in", values, "productCategoryId");
            return (Criteria) this;
        }

        public Criteria andProductCategoryIdBetween(Long value1, Long value2) {
            addCriterion("product_category_id between", value1, value2, "productCategoryId");
            return (Criteria) this;
        }

        public Criteria andProductCategoryIdNotBetween(Long value1, Long value2) {
            addCriterion("product_category_id not between", value1, value2, "productCategoryId");
            return (Criteria) this;
        }

        public Criteria andProductBrandIdIsNull() {
            addCriterion("product_brand_id is null");
            return (Criteria) this;
        }

        public Criteria andProductBrandIdIsNotNull() {
            addCriterion("product_brand_id is not null");
            return (Criteria) this;
        }

        public Criteria andProductBrandIdEqualTo(Long value) {
            addCriterion("product_brand_id =", value, "productBrandId");
            return (Criteria) this;
        }

        public Criteria andProductBrandIdNotEqualTo(Long value) {
            addCriterion("product_brand_id <>", value, "productBrandId");
            return (Criteria) this;
        }

        public Criteria andProductBrandIdGreaterThan(Long value) {
            addCriterion("product_brand_id >", value, "productBrandId");
            return (Criteria) this;
        }

        public Criteria andProductBrandIdGreaterThanOrEqualTo(Long value) {
            addCriterion("product_brand_id >=", value, "productBrandId");
            return (Criteria) this;
        }

        public Criteria andProductBrandIdLessThan(Long value) {
            addCriterion("product_brand_id <", value, "productBrandId");
            return (Criteria) this;
        }

        public Criteria andProductBrandIdLessThanOrEqualTo(Long value) {
            addCriterion("product_brand_id <=", value, "productBrandId");
            return (Criteria) this;
        }

        public Criteria andProductBrandIdIn(List<Long> values) {
            addCriterion("product_brand_id in", values, "productBrandId");
            return (Criteria) this;
        }

        public Criteria andProductBrandIdNotIn(List<Long> values) {
            addCriterion("product_brand_id not in", values, "productBrandId");
            return (Criteria) this;
        }

        public Criteria andProductBrandIdBetween(Long value1, Long value2) {
            addCriterion("product_brand_id between", value1, value2, "productBrandId");
            return (Criteria) this;
        }

        public Criteria andProductBrandIdNotBetween(Long value1, Long value2) {
            addCriterion("product_brand_id not between", value1, value2, "productBrandId");
            return (Criteria) this;
        }

        public Criteria andStoreIdIsNull() {
            addCriterion("store_id is null");
            return (Criteria) this;
        }

        public Criteria andStoreIdIsNotNull() {
            addCriterion("store_id is not null");
            return (Criteria) this;
        }

        public Criteria andStoreIdEqualTo(Long value) {
            addCriterion("store_id =", value, "storeId");
            return (Criteria) this;
        }

        public Criteria andStoreIdNotEqualTo(Long value) {
            addCriterion("store_id <>", value, "storeId");
            return (Criteria) this;
        }

        public Criteria andStoreIdGreaterThan(Long value) {
            addCriterion("store_id >", value, "storeId");
            return (Criteria) this;
        }

        public Criteria andStoreIdGreaterThanOrEqualTo(Long value) {
            addCriterion("store_id >=", value, "storeId");
            return (Criteria) this;
        }

        public Criteria andStoreIdLessThan(Long value) {
            addCriterion("store_id <", value, "storeId");
            return (Criteria) this;
        }

        public Criteria andStoreIdLessThanOrEqualTo(Long value) {
            addCriterion("store_id <=", value, "storeId");
            return (Criteria) this;
        }

        public Criteria andStoreIdIn(List<Long> values) {
            addCriterion("store_id in", values, "storeId");
            return (Criteria) this;
        }

        public Criteria andStoreIdNotIn(List<Long> values) {
            addCriterion("store_id not in", values, "storeId");
            return (Criteria) this;
        }

        public Criteria andStoreIdBetween(Long value1, Long value2) {
            addCriterion("store_id between", value1, value2, "storeId");
            return (Criteria) this;
        }

        public Criteria andStoreIdNotBetween(Long value1, Long value2) {
            addCriterion("store_id not between", value1, value2, "storeId");
            return (Criteria) this;
        }

        public Criteria andProductSnIsNull() {
            addCriterion("product_sn is null");
            return (Criteria) this;
        }

        public Criteria andProductSnIsNotNull() {
            addCriterion("product_sn is not null");
            return (Criteria) this;
        }

        public Criteria andProductSnEqualTo(String value) {
            addCriterion("product_sn =", value, "productSn");
            return (Criteria) this;
        }

        public Criteria andProductSnNotEqualTo(String value) {
            addCriterion("product_sn <>", value, "productSn");
            return (Criteria) this;
        }

        public Criteria andProductSnGreaterThan(String value) {
            addCriterion("product_sn >", value, "productSn");
            return (Criteria) this;
        }

        public Criteria andProductSnGreaterThanOrEqualTo(String value) {
            addCriterion("product_sn >=", value, "productSn");
            return (Criteria) this;
        }

        public Criteria andProductSnLessThan(String value) {
            addCriterion("product_sn <", value, "productSn");
            return (Criteria) this;
        }

        public Criteria andProductSnLessThanOrEqualTo(String value) {
            addCriterion("product_sn <=", value, "productSn");
            return (Criteria) this;
        }

        public Criteria andProductSnLike(String value) {
            addCriterion("product_sn like", value, "productSn");
            return (Criteria) this;
        }

        public Criteria andProductSnNotLike(String value) {
            addCriterion("product_sn not like", value, "productSn");
            return (Criteria) this;
        }

        public Criteria andProductSnIn(List<String> values) {
            addCriterion("product_sn in", values, "productSn");
            return (Criteria) this;
        }

        public Criteria andProductSnNotIn(List<String> values) {
            addCriterion("product_sn not in", values, "productSn");
            return (Criteria) this;
        }

        public Criteria andProductSnBetween(String value1, String value2) {
            addCriterion("product_sn between", value1, value2, "productSn");
            return (Criteria) this;
        }

        public Criteria andProductSnNotBetween(String value1, String value2) {
            addCriterion("product_sn not between", value1, value2, "productSn");
            return (Criteria) this;
        }

        public Criteria andProductNameIsNull() {
            addCriterion("product_name is null");
            return (Criteria) this;
        }

        public Criteria andProductNameIsNotNull() {
            addCriterion("product_name is not null");
            return (Criteria) this;
        }

        public Criteria andProductNameEqualTo(String value) {
            addCriterion("product_name =", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotEqualTo(String value) {
            addCriterion("product_name <>", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameGreaterThan(String value) {
            addCriterion("product_name >", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameGreaterThanOrEqualTo(String value) {
            addCriterion("product_name >=", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameLessThan(String value) {
            addCriterion("product_name <", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameLessThanOrEqualTo(String value) {
            addCriterion("product_name <=", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameLike(String value) {
            addCriterion("product_name like", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotLike(String value) {
            addCriterion("product_name not like", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameIn(List<String> values) {
            addCriterion("product_name in", values, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotIn(List<String> values) {
            addCriterion("product_name not in", values, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameBetween(String value1, String value2) {
            addCriterion("product_name between", value1, value2, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotBetween(String value1, String value2) {
            addCriterion("product_name not between", value1, value2, "productName");
            return (Criteria) this;
        }

        public Criteria andProductImgIsNull() {
            addCriterion("product_img is null");
            return (Criteria) this;
        }

        public Criteria andProductImgIsNotNull() {
            addCriterion("product_img is not null");
            return (Criteria) this;
        }

        public Criteria andProductImgEqualTo(String value) {
            addCriterion("product_img =", value, "productImg");
            return (Criteria) this;
        }

        public Criteria andProductImgNotEqualTo(String value) {
            addCriterion("product_img <>", value, "productImg");
            return (Criteria) this;
        }

        public Criteria andProductImgGreaterThan(String value) {
            addCriterion("product_img >", value, "productImg");
            return (Criteria) this;
        }

        public Criteria andProductImgGreaterThanOrEqualTo(String value) {
            addCriterion("product_img >=", value, "productImg");
            return (Criteria) this;
        }

        public Criteria andProductImgLessThan(String value) {
            addCriterion("product_img <", value, "productImg");
            return (Criteria) this;
        }

        public Criteria andProductImgLessThanOrEqualTo(String value) {
            addCriterion("product_img <=", value, "productImg");
            return (Criteria) this;
        }

        public Criteria andProductImgLike(String value) {
            addCriterion("product_img like", value, "productImg");
            return (Criteria) this;
        }

        public Criteria andProductImgNotLike(String value) {
            addCriterion("product_img not like", value, "productImg");
            return (Criteria) this;
        }

        public Criteria andProductImgIn(List<String> values) {
            addCriterion("product_img in", values, "productImg");
            return (Criteria) this;
        }

        public Criteria andProductImgNotIn(List<String> values) {
            addCriterion("product_img not in", values, "productImg");
            return (Criteria) this;
        }

        public Criteria andProductImgBetween(String value1, String value2) {
            addCriterion("product_img between", value1, value2, "productImg");
            return (Criteria) this;
        }

        public Criteria andProductImgNotBetween(String value1, String value2) {
            addCriterion("product_img not between", value1, value2, "productImg");
            return (Criteria) this;
        }

        public Criteria andProductImgsIsNull() {
            addCriterion("product_imgs is null");
            return (Criteria) this;
        }

        public Criteria andProductImgsIsNotNull() {
            addCriterion("product_imgs is not null");
            return (Criteria) this;
        }

        public Criteria andProductImgsEqualTo(String value) {
            addCriterion("product_imgs =", value, "productImgs");
            return (Criteria) this;
        }

        public Criteria andProductImgsNotEqualTo(String value) {
            addCriterion("product_imgs <>", value, "productImgs");
            return (Criteria) this;
        }

        public Criteria andProductImgsGreaterThan(String value) {
            addCriterion("product_imgs >", value, "productImgs");
            return (Criteria) this;
        }

        public Criteria andProductImgsGreaterThanOrEqualTo(String value) {
            addCriterion("product_imgs >=", value, "productImgs");
            return (Criteria) this;
        }

        public Criteria andProductImgsLessThan(String value) {
            addCriterion("product_imgs <", value, "productImgs");
            return (Criteria) this;
        }

        public Criteria andProductImgsLessThanOrEqualTo(String value) {
            addCriterion("product_imgs <=", value, "productImgs");
            return (Criteria) this;
        }

        public Criteria andProductImgsLike(String value) {
            addCriterion("product_imgs like", value, "productImgs");
            return (Criteria) this;
        }

        public Criteria andProductImgsNotLike(String value) {
            addCriterion("product_imgs not like", value, "productImgs");
            return (Criteria) this;
        }

        public Criteria andProductImgsIn(List<String> values) {
            addCriterion("product_imgs in", values, "productImgs");
            return (Criteria) this;
        }

        public Criteria andProductImgsNotIn(List<String> values) {
            addCriterion("product_imgs not in", values, "productImgs");
            return (Criteria) this;
        }

        public Criteria andProductImgsBetween(String value1, String value2) {
            addCriterion("product_imgs between", value1, value2, "productImgs");
            return (Criteria) this;
        }

        public Criteria andProductImgsNotBetween(String value1, String value2) {
            addCriterion("product_imgs not between", value1, value2, "productImgs");
            return (Criteria) this;
        }

        public Criteria andProductClickCountIsNull() {
            addCriterion("product_click_count is null");
            return (Criteria) this;
        }

        public Criteria andProductClickCountIsNotNull() {
            addCriterion("product_click_count is not null");
            return (Criteria) this;
        }

        public Criteria andProductClickCountEqualTo(Long value) {
            addCriterion("product_click_count =", value, "productClickCount");
            return (Criteria) this;
        }

        public Criteria andProductClickCountNotEqualTo(Long value) {
            addCriterion("product_click_count <>", value, "productClickCount");
            return (Criteria) this;
        }

        public Criteria andProductClickCountGreaterThan(Long value) {
            addCriterion("product_click_count >", value, "productClickCount");
            return (Criteria) this;
        }

        public Criteria andProductClickCountGreaterThanOrEqualTo(Long value) {
            addCriterion("product_click_count >=", value, "productClickCount");
            return (Criteria) this;
        }

        public Criteria andProductClickCountLessThan(Long value) {
            addCriterion("product_click_count <", value, "productClickCount");
            return (Criteria) this;
        }

        public Criteria andProductClickCountLessThanOrEqualTo(Long value) {
            addCriterion("product_click_count <=", value, "productClickCount");
            return (Criteria) this;
        }

        public Criteria andProductClickCountIn(List<Long> values) {
            addCriterion("product_click_count in", values, "productClickCount");
            return (Criteria) this;
        }

        public Criteria andProductClickCountNotIn(List<Long> values) {
            addCriterion("product_click_count not in", values, "productClickCount");
            return (Criteria) this;
        }

        public Criteria andProductClickCountBetween(Long value1, Long value2) {
            addCriterion("product_click_count between", value1, value2, "productClickCount");
            return (Criteria) this;
        }

        public Criteria andProductClickCountNotBetween(Long value1, Long value2) {
            addCriterion("product_click_count not between", value1, value2, "productClickCount");
            return (Criteria) this;
        }

        public Criteria andProductInventoryNumberIsNull() {
            addCriterion("product_inventory_number is null");
            return (Criteria) this;
        }

        public Criteria andProductInventoryNumberIsNotNull() {
            addCriterion("product_inventory_number is not null");
            return (Criteria) this;
        }

        public Criteria andProductInventoryNumberEqualTo(Long value) {
            addCriterion("product_inventory_number =", value, "productInventoryNumber");
            return (Criteria) this;
        }

        public Criteria andProductInventoryNumberNotEqualTo(Long value) {
            addCriterion("product_inventory_number <>", value, "productInventoryNumber");
            return (Criteria) this;
        }

        public Criteria andProductInventoryNumberGreaterThan(Long value) {
            addCriterion("product_inventory_number >", value, "productInventoryNumber");
            return (Criteria) this;
        }

        public Criteria andProductInventoryNumberGreaterThanOrEqualTo(Long value) {
            addCriterion("product_inventory_number >=", value, "productInventoryNumber");
            return (Criteria) this;
        }

        public Criteria andProductInventoryNumberLessThan(Long value) {
            addCriterion("product_inventory_number <", value, "productInventoryNumber");
            return (Criteria) this;
        }

        public Criteria andProductInventoryNumberLessThanOrEqualTo(Long value) {
            addCriterion("product_inventory_number <=", value, "productInventoryNumber");
            return (Criteria) this;
        }

        public Criteria andProductInventoryNumberIn(List<Long> values) {
            addCriterion("product_inventory_number in", values, "productInventoryNumber");
            return (Criteria) this;
        }

        public Criteria andProductInventoryNumberNotIn(List<Long> values) {
            addCriterion("product_inventory_number not in", values, "productInventoryNumber");
            return (Criteria) this;
        }

        public Criteria andProductInventoryNumberBetween(Long value1, Long value2) {
            addCriterion("product_inventory_number between", value1, value2, "productInventoryNumber");
            return (Criteria) this;
        }

        public Criteria andProductInventoryNumberNotBetween(Long value1, Long value2) {
            addCriterion("product_inventory_number not between", value1, value2, "productInventoryNumber");
            return (Criteria) this;
        }

        public Criteria andProductInventoryWarnNumberIsNull() {
            addCriterion("product_inventory_warn_number is null");
            return (Criteria) this;
        }

        public Criteria andProductInventoryWarnNumberIsNotNull() {
            addCriterion("product_inventory_warn_number is not null");
            return (Criteria) this;
        }

        public Criteria andProductInventoryWarnNumberEqualTo(Long value) {
            addCriterion("product_inventory_warn_number =", value, "productInventoryWarnNumber");
            return (Criteria) this;
        }

        public Criteria andProductInventoryWarnNumberNotEqualTo(Long value) {
            addCriterion("product_inventory_warn_number <>", value, "productInventoryWarnNumber");
            return (Criteria) this;
        }

        public Criteria andProductInventoryWarnNumberGreaterThan(Long value) {
            addCriterion("product_inventory_warn_number >", value, "productInventoryWarnNumber");
            return (Criteria) this;
        }

        public Criteria andProductInventoryWarnNumberGreaterThanOrEqualTo(Long value) {
            addCriterion("product_inventory_warn_number >=", value, "productInventoryWarnNumber");
            return (Criteria) this;
        }

        public Criteria andProductInventoryWarnNumberLessThan(Long value) {
            addCriterion("product_inventory_warn_number <", value, "productInventoryWarnNumber");
            return (Criteria) this;
        }

        public Criteria andProductInventoryWarnNumberLessThanOrEqualTo(Long value) {
            addCriterion("product_inventory_warn_number <=", value, "productInventoryWarnNumber");
            return (Criteria) this;
        }

        public Criteria andProductInventoryWarnNumberIn(List<Long> values) {
            addCriterion("product_inventory_warn_number in", values, "productInventoryWarnNumber");
            return (Criteria) this;
        }

        public Criteria andProductInventoryWarnNumberNotIn(List<Long> values) {
            addCriterion("product_inventory_warn_number not in", values, "productInventoryWarnNumber");
            return (Criteria) this;
        }

        public Criteria andProductInventoryWarnNumberBetween(Long value1, Long value2) {
            addCriterion("product_inventory_warn_number between", value1, value2, "productInventoryWarnNumber");
            return (Criteria) this;
        }

        public Criteria andProductInventoryWarnNumberNotBetween(Long value1, Long value2) {
            addCriterion("product_inventory_warn_number not between", value1, value2, "productInventoryWarnNumber");
            return (Criteria) this;
        }

        public Criteria andProductWeightIsNull() {
            addCriterion("product_weight is null");
            return (Criteria) this;
        }

        public Criteria andProductWeightIsNotNull() {
            addCriterion("product_weight is not null");
            return (Criteria) this;
        }

        public Criteria andProductWeightEqualTo(String value) {
            addCriterion("product_weight =", value, "productWeight");
            return (Criteria) this;
        }

        public Criteria andProductWeightNotEqualTo(String value) {
            addCriterion("product_weight <>", value, "productWeight");
            return (Criteria) this;
        }

        public Criteria andProductWeightGreaterThan(String value) {
            addCriterion("product_weight >", value, "productWeight");
            return (Criteria) this;
        }

        public Criteria andProductWeightGreaterThanOrEqualTo(String value) {
            addCriterion("product_weight >=", value, "productWeight");
            return (Criteria) this;
        }

        public Criteria andProductWeightLessThan(String value) {
            addCriterion("product_weight <", value, "productWeight");
            return (Criteria) this;
        }

        public Criteria andProductWeightLessThanOrEqualTo(String value) {
            addCriterion("product_weight <=", value, "productWeight");
            return (Criteria) this;
        }

        public Criteria andProductWeightLike(String value) {
            addCriterion("product_weight like", value, "productWeight");
            return (Criteria) this;
        }

        public Criteria andProductWeightNotLike(String value) {
            addCriterion("product_weight not like", value, "productWeight");
            return (Criteria) this;
        }

        public Criteria andProductWeightIn(List<String> values) {
            addCriterion("product_weight in", values, "productWeight");
            return (Criteria) this;
        }

        public Criteria andProductWeightNotIn(List<String> values) {
            addCriterion("product_weight not in", values, "productWeight");
            return (Criteria) this;
        }

        public Criteria andProductWeightBetween(String value1, String value2) {
            addCriterion("product_weight between", value1, value2, "productWeight");
            return (Criteria) this;
        }

        public Criteria andProductWeightNotBetween(String value1, String value2) {
            addCriterion("product_weight not between", value1, value2, "productWeight");
            return (Criteria) this;
        }

        public Criteria andProductMarketPriceIsNull() {
            addCriterion("product_market_price is null");
            return (Criteria) this;
        }

        public Criteria andProductMarketPriceIsNotNull() {
            addCriterion("product_market_price is not null");
            return (Criteria) this;
        }

        public Criteria andProductMarketPriceEqualTo(BigDecimal value) {
            addCriterion("product_market_price =", value, "productMarketPrice");
            return (Criteria) this;
        }

        public Criteria andProductMarketPriceNotEqualTo(BigDecimal value) {
            addCriterion("product_market_price <>", value, "productMarketPrice");
            return (Criteria) this;
        }

        public Criteria andProductMarketPriceGreaterThan(BigDecimal value) {
            addCriterion("product_market_price >", value, "productMarketPrice");
            return (Criteria) this;
        }

        public Criteria andProductMarketPriceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("product_market_price >=", value, "productMarketPrice");
            return (Criteria) this;
        }

        public Criteria andProductMarketPriceLessThan(BigDecimal value) {
            addCriterion("product_market_price <", value, "productMarketPrice");
            return (Criteria) this;
        }

        public Criteria andProductMarketPriceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("product_market_price <=", value, "productMarketPrice");
            return (Criteria) this;
        }

        public Criteria andProductMarketPriceIn(List<BigDecimal> values) {
            addCriterion("product_market_price in", values, "productMarketPrice");
            return (Criteria) this;
        }

        public Criteria andProductMarketPriceNotIn(List<BigDecimal> values) {
            addCriterion("product_market_price not in", values, "productMarketPrice");
            return (Criteria) this;
        }

        public Criteria andProductMarketPriceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("product_market_price between", value1, value2, "productMarketPrice");
            return (Criteria) this;
        }

        public Criteria andProductMarketPriceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("product_market_price not between", value1, value2, "productMarketPrice");
            return (Criteria) this;
        }

        public Criteria andProductShopPriceIsNull() {
            addCriterion("product_shop_price is null");
            return (Criteria) this;
        }

        public Criteria andProductShopPriceIsNotNull() {
            addCriterion("product_shop_price is not null");
            return (Criteria) this;
        }

        public Criteria andProductShopPriceEqualTo(BigDecimal value) {
            addCriterion("product_shop_price =", value, "productShopPrice");
            return (Criteria) this;
        }

        public Criteria andProductShopPriceNotEqualTo(BigDecimal value) {
            addCriterion("product_shop_price <>", value, "productShopPrice");
            return (Criteria) this;
        }

        public Criteria andProductShopPriceGreaterThan(BigDecimal value) {
            addCriterion("product_shop_price >", value, "productShopPrice");
            return (Criteria) this;
        }

        public Criteria andProductShopPriceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("product_shop_price >=", value, "productShopPrice");
            return (Criteria) this;
        }

        public Criteria andProductShopPriceLessThan(BigDecimal value) {
            addCriterion("product_shop_price <", value, "productShopPrice");
            return (Criteria) this;
        }

        public Criteria andProductShopPriceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("product_shop_price <=", value, "productShopPrice");
            return (Criteria) this;
        }

        public Criteria andProductShopPriceIn(List<BigDecimal> values) {
            addCriterion("product_shop_price in", values, "productShopPrice");
            return (Criteria) this;
        }

        public Criteria andProductShopPriceNotIn(List<BigDecimal> values) {
            addCriterion("product_shop_price not in", values, "productShopPrice");
            return (Criteria) this;
        }

        public Criteria andProductShopPriceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("product_shop_price between", value1, value2, "productShopPrice");
            return (Criteria) this;
        }

        public Criteria andProductShopPriceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("product_shop_price not between", value1, value2, "productShopPrice");
            return (Criteria) this;
        }

        public Criteria andProductPromotePriceIsNull() {
            addCriterion("product_promote_price is null");
            return (Criteria) this;
        }

        public Criteria andProductPromotePriceIsNotNull() {
            addCriterion("product_promote_price is not null");
            return (Criteria) this;
        }

        public Criteria andProductPromotePriceEqualTo(BigDecimal value) {
            addCriterion("product_promote_price =", value, "productPromotePrice");
            return (Criteria) this;
        }

        public Criteria andProductPromotePriceNotEqualTo(BigDecimal value) {
            addCriterion("product_promote_price <>", value, "productPromotePrice");
            return (Criteria) this;
        }

        public Criteria andProductPromotePriceGreaterThan(BigDecimal value) {
            addCriterion("product_promote_price >", value, "productPromotePrice");
            return (Criteria) this;
        }

        public Criteria andProductPromotePriceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("product_promote_price >=", value, "productPromotePrice");
            return (Criteria) this;
        }

        public Criteria andProductPromotePriceLessThan(BigDecimal value) {
            addCriterion("product_promote_price <", value, "productPromotePrice");
            return (Criteria) this;
        }

        public Criteria andProductPromotePriceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("product_promote_price <=", value, "productPromotePrice");
            return (Criteria) this;
        }

        public Criteria andProductPromotePriceIn(List<BigDecimal> values) {
            addCriterion("product_promote_price in", values, "productPromotePrice");
            return (Criteria) this;
        }

        public Criteria andProductPromotePriceNotIn(List<BigDecimal> values) {
            addCriterion("product_promote_price not in", values, "productPromotePrice");
            return (Criteria) this;
        }

        public Criteria andProductPromotePriceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("product_promote_price between", value1, value2, "productPromotePrice");
            return (Criteria) this;
        }

        public Criteria andProductPromotePriceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("product_promote_price not between", value1, value2, "productPromotePrice");
            return (Criteria) this;
        }

        public Criteria andProductPromoteStartDateIsNull() {
            addCriterion("product_promote_start_date is null");
            return (Criteria) this;
        }

        public Criteria andProductPromoteStartDateIsNotNull() {
            addCriterion("product_promote_start_date is not null");
            return (Criteria) this;
        }

        public Criteria andProductPromoteStartDateEqualTo(String value) {
            addCriterion("product_promote_start_date =", value, "productPromoteStartDate");
            return (Criteria) this;
        }

        public Criteria andProductPromoteStartDateNotEqualTo(String value) {
            addCriterion("product_promote_start_date <>", value, "productPromoteStartDate");
            return (Criteria) this;
        }

        public Criteria andProductPromoteStartDateGreaterThan(String value) {
            addCriterion("product_promote_start_date >", value, "productPromoteStartDate");
            return (Criteria) this;
        }

        public Criteria andProductPromoteStartDateGreaterThanOrEqualTo(String value) {
            addCriterion("product_promote_start_date >=", value, "productPromoteStartDate");
            return (Criteria) this;
        }

        public Criteria andProductPromoteStartDateLessThan(String value) {
            addCriterion("product_promote_start_date <", value, "productPromoteStartDate");
            return (Criteria) this;
        }

        public Criteria andProductPromoteStartDateLessThanOrEqualTo(String value) {
            addCriterion("product_promote_start_date <=", value, "productPromoteStartDate");
            return (Criteria) this;
        }

        public Criteria andProductPromoteStartDateLike(String value) {
            addCriterion("product_promote_start_date like", value, "productPromoteStartDate");
            return (Criteria) this;
        }

        public Criteria andProductPromoteStartDateNotLike(String value) {
            addCriterion("product_promote_start_date not like", value, "productPromoteStartDate");
            return (Criteria) this;
        }

        public Criteria andProductPromoteStartDateIn(List<String> values) {
            addCriterion("product_promote_start_date in", values, "productPromoteStartDate");
            return (Criteria) this;
        }

        public Criteria andProductPromoteStartDateNotIn(List<String> values) {
            addCriterion("product_promote_start_date not in", values, "productPromoteStartDate");
            return (Criteria) this;
        }

        public Criteria andProductPromoteStartDateBetween(String value1, String value2) {
            addCriterion("product_promote_start_date between", value1, value2, "productPromoteStartDate");
            return (Criteria) this;
        }

        public Criteria andProductPromoteStartDateNotBetween(String value1, String value2) {
            addCriterion("product_promote_start_date not between", value1, value2, "productPromoteStartDate");
            return (Criteria) this;
        }

        public Criteria andProductPromoteEndDateIsNull() {
            addCriterion("product_promote_end_date is null");
            return (Criteria) this;
        }

        public Criteria andProductPromoteEndDateIsNotNull() {
            addCriterion("product_promote_end_date is not null");
            return (Criteria) this;
        }

        public Criteria andProductPromoteEndDateEqualTo(String value) {
            addCriterion("product_promote_end_date =", value, "productPromoteEndDate");
            return (Criteria) this;
        }

        public Criteria andProductPromoteEndDateNotEqualTo(String value) {
            addCriterion("product_promote_end_date <>", value, "productPromoteEndDate");
            return (Criteria) this;
        }

        public Criteria andProductPromoteEndDateGreaterThan(String value) {
            addCriterion("product_promote_end_date >", value, "productPromoteEndDate");
            return (Criteria) this;
        }

        public Criteria andProductPromoteEndDateGreaterThanOrEqualTo(String value) {
            addCriterion("product_promote_end_date >=", value, "productPromoteEndDate");
            return (Criteria) this;
        }

        public Criteria andProductPromoteEndDateLessThan(String value) {
            addCriterion("product_promote_end_date <", value, "productPromoteEndDate");
            return (Criteria) this;
        }

        public Criteria andProductPromoteEndDateLessThanOrEqualTo(String value) {
            addCriterion("product_promote_end_date <=", value, "productPromoteEndDate");
            return (Criteria) this;
        }

        public Criteria andProductPromoteEndDateLike(String value) {
            addCriterion("product_promote_end_date like", value, "productPromoteEndDate");
            return (Criteria) this;
        }

        public Criteria andProductPromoteEndDateNotLike(String value) {
            addCriterion("product_promote_end_date not like", value, "productPromoteEndDate");
            return (Criteria) this;
        }

        public Criteria andProductPromoteEndDateIn(List<String> values) {
            addCriterion("product_promote_end_date in", values, "productPromoteEndDate");
            return (Criteria) this;
        }

        public Criteria andProductPromoteEndDateNotIn(List<String> values) {
            addCriterion("product_promote_end_date not in", values, "productPromoteEndDate");
            return (Criteria) this;
        }

        public Criteria andProductPromoteEndDateBetween(String value1, String value2) {
            addCriterion("product_promote_end_date between", value1, value2, "productPromoteEndDate");
            return (Criteria) this;
        }

        public Criteria andProductPromoteEndDateNotBetween(String value1, String value2) {
            addCriterion("product_promote_end_date not between", value1, value2, "productPromoteEndDate");
            return (Criteria) this;
        }

        public Criteria andProductKeywordsIsNull() {
            addCriterion("product_keywords is null");
            return (Criteria) this;
        }

        public Criteria andProductKeywordsIsNotNull() {
            addCriterion("product_keywords is not null");
            return (Criteria) this;
        }

        public Criteria andProductKeywordsEqualTo(String value) {
            addCriterion("product_keywords =", value, "productKeywords");
            return (Criteria) this;
        }

        public Criteria andProductKeywordsNotEqualTo(String value) {
            addCriterion("product_keywords <>", value, "productKeywords");
            return (Criteria) this;
        }

        public Criteria andProductKeywordsGreaterThan(String value) {
            addCriterion("product_keywords >", value, "productKeywords");
            return (Criteria) this;
        }

        public Criteria andProductKeywordsGreaterThanOrEqualTo(String value) {
            addCriterion("product_keywords >=", value, "productKeywords");
            return (Criteria) this;
        }

        public Criteria andProductKeywordsLessThan(String value) {
            addCriterion("product_keywords <", value, "productKeywords");
            return (Criteria) this;
        }

        public Criteria andProductKeywordsLessThanOrEqualTo(String value) {
            addCriterion("product_keywords <=", value, "productKeywords");
            return (Criteria) this;
        }

        public Criteria andProductKeywordsLike(String value) {
            addCriterion("product_keywords like", value, "productKeywords");
            return (Criteria) this;
        }

        public Criteria andProductKeywordsNotLike(String value) {
            addCriterion("product_keywords not like", value, "productKeywords");
            return (Criteria) this;
        }

        public Criteria andProductKeywordsIn(List<String> values) {
            addCriterion("product_keywords in", values, "productKeywords");
            return (Criteria) this;
        }

        public Criteria andProductKeywordsNotIn(List<String> values) {
            addCriterion("product_keywords not in", values, "productKeywords");
            return (Criteria) this;
        }

        public Criteria andProductKeywordsBetween(String value1, String value2) {
            addCriterion("product_keywords between", value1, value2, "productKeywords");
            return (Criteria) this;
        }

        public Criteria andProductKeywordsNotBetween(String value1, String value2) {
            addCriterion("product_keywords not between", value1, value2, "productKeywords");
            return (Criteria) this;
        }

        public Criteria andProductDescIsNull() {
            addCriterion("product_desc is null");
            return (Criteria) this;
        }

        public Criteria andProductDescIsNotNull() {
            addCriterion("product_desc is not null");
            return (Criteria) this;
        }

        public Criteria andProductDescEqualTo(String value) {
            addCriterion("product_desc =", value, "productDesc");
            return (Criteria) this;
        }

        public Criteria andProductDescNotEqualTo(String value) {
            addCriterion("product_desc <>", value, "productDesc");
            return (Criteria) this;
        }

        public Criteria andProductDescGreaterThan(String value) {
            addCriterion("product_desc >", value, "productDesc");
            return (Criteria) this;
        }

        public Criteria andProductDescGreaterThanOrEqualTo(String value) {
            addCriterion("product_desc >=", value, "productDesc");
            return (Criteria) this;
        }

        public Criteria andProductDescLessThan(String value) {
            addCriterion("product_desc <", value, "productDesc");
            return (Criteria) this;
        }

        public Criteria andProductDescLessThanOrEqualTo(String value) {
            addCriterion("product_desc <=", value, "productDesc");
            return (Criteria) this;
        }

        public Criteria andProductDescLike(String value) {
            addCriterion("product_desc like", value, "productDesc");
            return (Criteria) this;
        }

        public Criteria andProductDescNotLike(String value) {
            addCriterion("product_desc not like", value, "productDesc");
            return (Criteria) this;
        }

        public Criteria andProductDescIn(List<String> values) {
            addCriterion("product_desc in", values, "productDesc");
            return (Criteria) this;
        }

        public Criteria andProductDescNotIn(List<String> values) {
            addCriterion("product_desc not in", values, "productDesc");
            return (Criteria) this;
        }

        public Criteria andProductDescBetween(String value1, String value2) {
            addCriterion("product_desc between", value1, value2, "productDesc");
            return (Criteria) this;
        }

        public Criteria andProductDescNotBetween(String value1, String value2) {
            addCriterion("product_desc not between", value1, value2, "productDesc");
            return (Criteria) this;
        }

        public Criteria andProductIsVariantIsNull() {
            addCriterion("product_is_variant is null");
            return (Criteria) this;
        }

        public Criteria andProductIsVariantIsNotNull() {
            addCriterion("product_is_variant is not null");
            return (Criteria) this;
        }

        public Criteria andProductIsVariantEqualTo(Byte value) {
            addCriterion("product_is_variant =", value, "productIsVariant");
            return (Criteria) this;
        }

        public Criteria andProductIsVariantNotEqualTo(Byte value) {
            addCriterion("product_is_variant <>", value, "productIsVariant");
            return (Criteria) this;
        }

        public Criteria andProductIsVariantGreaterThan(Byte value) {
            addCriterion("product_is_variant >", value, "productIsVariant");
            return (Criteria) this;
        }

        public Criteria andProductIsVariantGreaterThanOrEqualTo(Byte value) {
            addCriterion("product_is_variant >=", value, "productIsVariant");
            return (Criteria) this;
        }

        public Criteria andProductIsVariantLessThan(Byte value) {
            addCriterion("product_is_variant <", value, "productIsVariant");
            return (Criteria) this;
        }

        public Criteria andProductIsVariantLessThanOrEqualTo(Byte value) {
            addCriterion("product_is_variant <=", value, "productIsVariant");
            return (Criteria) this;
        }

        public Criteria andProductIsVariantIn(List<Byte> values) {
            addCriterion("product_is_variant in", values, "productIsVariant");
            return (Criteria) this;
        }

        public Criteria andProductIsVariantNotIn(List<Byte> values) {
            addCriterion("product_is_variant not in", values, "productIsVariant");
            return (Criteria) this;
        }

        public Criteria andProductIsVariantBetween(Byte value1, Byte value2) {
            addCriterion("product_is_variant between", value1, value2, "productIsVariant");
            return (Criteria) this;
        }

        public Criteria andProductIsVariantNotBetween(Byte value1, Byte value2) {
            addCriterion("product_is_variant not between", value1, value2, "productIsVariant");
            return (Criteria) this;
        }

        public Criteria andProductIsOnSaleIsNull() {
            addCriterion("product_is_on_sale is null");
            return (Criteria) this;
        }

        public Criteria andProductIsOnSaleIsNotNull() {
            addCriterion("product_is_on_sale is not null");
            return (Criteria) this;
        }

        public Criteria andProductIsOnSaleEqualTo(Byte value) {
            addCriterion("product_is_on_sale =", value, "productIsOnSale");
            return (Criteria) this;
        }

        public Criteria andProductIsOnSaleNotEqualTo(Byte value) {
            addCriterion("product_is_on_sale <>", value, "productIsOnSale");
            return (Criteria) this;
        }

        public Criteria andProductIsOnSaleGreaterThan(Byte value) {
            addCriterion("product_is_on_sale >", value, "productIsOnSale");
            return (Criteria) this;
        }

        public Criteria andProductIsOnSaleGreaterThanOrEqualTo(Byte value) {
            addCriterion("product_is_on_sale >=", value, "productIsOnSale");
            return (Criteria) this;
        }

        public Criteria andProductIsOnSaleLessThan(Byte value) {
            addCriterion("product_is_on_sale <", value, "productIsOnSale");
            return (Criteria) this;
        }

        public Criteria andProductIsOnSaleLessThanOrEqualTo(Byte value) {
            addCriterion("product_is_on_sale <=", value, "productIsOnSale");
            return (Criteria) this;
        }

        public Criteria andProductIsOnSaleIn(List<Byte> values) {
            addCriterion("product_is_on_sale in", values, "productIsOnSale");
            return (Criteria) this;
        }

        public Criteria andProductIsOnSaleNotIn(List<Byte> values) {
            addCriterion("product_is_on_sale not in", values, "productIsOnSale");
            return (Criteria) this;
        }

        public Criteria andProductIsOnSaleBetween(Byte value1, Byte value2) {
            addCriterion("product_is_on_sale between", value1, value2, "productIsOnSale");
            return (Criteria) this;
        }

        public Criteria andProductIsOnSaleNotBetween(Byte value1, Byte value2) {
            addCriterion("product_is_on_sale not between", value1, value2, "productIsOnSale");
            return (Criteria) this;
        }

        public Criteria andOrdersIsNull() {
            addCriterion("orders is null");
            return (Criteria) this;
        }

        public Criteria andOrdersIsNotNull() {
            addCriterion("orders is not null");
            return (Criteria) this;
        }

        public Criteria andOrdersEqualTo(Long value) {
            addCriterion("orders =", value, "orders");
            return (Criteria) this;
        }

        public Criteria andOrdersNotEqualTo(Long value) {
            addCriterion("orders <>", value, "orders");
            return (Criteria) this;
        }

        public Criteria andOrdersGreaterThan(Long value) {
            addCriterion("orders >", value, "orders");
            return (Criteria) this;
        }

        public Criteria andOrdersGreaterThanOrEqualTo(Long value) {
            addCriterion("orders >=", value, "orders");
            return (Criteria) this;
        }

        public Criteria andOrdersLessThan(Long value) {
            addCriterion("orders <", value, "orders");
            return (Criteria) this;
        }

        public Criteria andOrdersLessThanOrEqualTo(Long value) {
            addCriterion("orders <=", value, "orders");
            return (Criteria) this;
        }

        public Criteria andOrdersIn(List<Long> values) {
            addCriterion("orders in", values, "orders");
            return (Criteria) this;
        }

        public Criteria andOrdersNotIn(List<Long> values) {
            addCriterion("orders not in", values, "orders");
            return (Criteria) this;
        }

        public Criteria andOrdersBetween(Long value1, Long value2) {
            addCriterion("orders between", value1, value2, "orders");
            return (Criteria) this;
        }

        public Criteria andOrdersNotBetween(Long value1, Long value2) {
            addCriterion("orders not between", value1, value2, "orders");
            return (Criteria) this;
        }

        public Criteria andStoreNameIsNull() {
            addCriterion("store_name is null");
            return (Criteria) this;
        }

        public Criteria andStoreNameIsNotNull() {
            addCriterion("store_name is not null");
            return (Criteria) this;
        }

        public Criteria andStoreNameEqualTo(String value) {
            addCriterion("store_name =", value, "storeName");
            return (Criteria) this;
        }

        public Criteria andStoreNameNotEqualTo(String value) {
            addCriterion("store_name <>", value, "storeName");
            return (Criteria) this;
        }

        public Criteria andStoreNameGreaterThan(String value) {
            addCriterion("store_name >", value, "storeName");
            return (Criteria) this;
        }

        public Criteria andStoreNameGreaterThanOrEqualTo(String value) {
            addCriterion("store_name >=", value, "storeName");
            return (Criteria) this;
        }

        public Criteria andStoreNameLessThan(String value) {
            addCriterion("store_name <", value, "storeName");
            return (Criteria) this;
        }

        public Criteria andStoreNameLessThanOrEqualTo(String value) {
            addCriterion("store_name <=", value, "storeName");
            return (Criteria) this;
        }

        public Criteria andStoreNameLike(String value) {
            addCriterion("store_name like", value, "storeName");
            return (Criteria) this;
        }

        public Criteria andStoreNameNotLike(String value) {
            addCriterion("store_name not like", value, "storeName");
            return (Criteria) this;
        }

        public Criteria andStoreNameIn(List<String> values) {
            addCriterion("store_name in", values, "storeName");
            return (Criteria) this;
        }

        public Criteria andStoreNameNotIn(List<String> values) {
            addCriterion("store_name not in", values, "storeName");
            return (Criteria) this;
        }

        public Criteria andStoreNameBetween(String value1, String value2) {
            addCriterion("store_name between", value1, value2, "storeName");
            return (Criteria) this;
        }

        public Criteria andStoreNameNotBetween(String value1, String value2) {
            addCriterion("store_name not between", value1, value2, "storeName");
            return (Criteria) this;
        }

        public Criteria andProductIsDeleteIsNull() {
            addCriterion("product_is_delete is null");
            return (Criteria) this;
        }

        public Criteria andProductIsDeleteIsNotNull() {
            addCriterion("product_is_delete is not null");
            return (Criteria) this;
        }

        public Criteria andProductIsDeleteEqualTo(Byte value) {
            addCriterion("product_is_delete =", value, "productIsDelete");
            return (Criteria) this;
        }

        public Criteria andProductIsDeleteNotEqualTo(Byte value) {
            addCriterion("product_is_delete <>", value, "productIsDelete");
            return (Criteria) this;
        }

        public Criteria andProductIsDeleteGreaterThan(Byte value) {
            addCriterion("product_is_delete >", value, "productIsDelete");
            return (Criteria) this;
        }

        public Criteria andProductIsDeleteGreaterThanOrEqualTo(Byte value) {
            addCriterion("product_is_delete >=", value, "productIsDelete");
            return (Criteria) this;
        }

        public Criteria andProductIsDeleteLessThan(Byte value) {
            addCriterion("product_is_delete <", value, "productIsDelete");
            return (Criteria) this;
        }

        public Criteria andProductIsDeleteLessThanOrEqualTo(Byte value) {
            addCriterion("product_is_delete <=", value, "productIsDelete");
            return (Criteria) this;
        }

        public Criteria andProductIsDeleteIn(List<Byte> values) {
            addCriterion("product_is_delete in", values, "productIsDelete");
            return (Criteria) this;
        }

        public Criteria andProductIsDeleteNotIn(List<Byte> values) {
            addCriterion("product_is_delete not in", values, "productIsDelete");
            return (Criteria) this;
        }

        public Criteria andProductIsDeleteBetween(Byte value1, Byte value2) {
            addCriterion("product_is_delete between", value1, value2, "productIsDelete");
            return (Criteria) this;
        }

        public Criteria andProductIsDeleteNotBetween(Byte value1, Byte value2) {
            addCriterion("product_is_delete not between", value1, value2, "productIsDelete");
            return (Criteria) this;
        }

        public Criteria andProductIsBestIsNull() {
            addCriterion("product_is_best is null");
            return (Criteria) this;
        }

        public Criteria andProductIsBestIsNotNull() {
            addCriterion("product_is_best is not null");
            return (Criteria) this;
        }

        public Criteria andProductIsBestEqualTo(Byte value) {
            addCriterion("product_is_best =", value, "productIsBest");
            return (Criteria) this;
        }

        public Criteria andProductIsBestNotEqualTo(Byte value) {
            addCriterion("product_is_best <>", value, "productIsBest");
            return (Criteria) this;
        }

        public Criteria andProductIsBestGreaterThan(Byte value) {
            addCriterion("product_is_best >", value, "productIsBest");
            return (Criteria) this;
        }

        public Criteria andProductIsBestGreaterThanOrEqualTo(Byte value) {
            addCriterion("product_is_best >=", value, "productIsBest");
            return (Criteria) this;
        }

        public Criteria andProductIsBestLessThan(Byte value) {
            addCriterion("product_is_best <", value, "productIsBest");
            return (Criteria) this;
        }

        public Criteria andProductIsBestLessThanOrEqualTo(Byte value) {
            addCriterion("product_is_best <=", value, "productIsBest");
            return (Criteria) this;
        }

        public Criteria andProductIsBestIn(List<Byte> values) {
            addCriterion("product_is_best in", values, "productIsBest");
            return (Criteria) this;
        }

        public Criteria andProductIsBestNotIn(List<Byte> values) {
            addCriterion("product_is_best not in", values, "productIsBest");
            return (Criteria) this;
        }

        public Criteria andProductIsBestBetween(Byte value1, Byte value2) {
            addCriterion("product_is_best between", value1, value2, "productIsBest");
            return (Criteria) this;
        }

        public Criteria andProductIsBestNotBetween(Byte value1, Byte value2) {
            addCriterion("product_is_best not between", value1, value2, "productIsBest");
            return (Criteria) this;
        }

        public Criteria andProductIsNewIsNull() {
            addCriterion("product_is_new is null");
            return (Criteria) this;
        }

        public Criteria andProductIsNewIsNotNull() {
            addCriterion("product_is_new is not null");
            return (Criteria) this;
        }

        public Criteria andProductIsNewEqualTo(Byte value) {
            addCriterion("product_is_new =", value, "productIsNew");
            return (Criteria) this;
        }

        public Criteria andProductIsNewNotEqualTo(Byte value) {
            addCriterion("product_is_new <>", value, "productIsNew");
            return (Criteria) this;
        }

        public Criteria andProductIsNewGreaterThan(Byte value) {
            addCriterion("product_is_new >", value, "productIsNew");
            return (Criteria) this;
        }

        public Criteria andProductIsNewGreaterThanOrEqualTo(Byte value) {
            addCriterion("product_is_new >=", value, "productIsNew");
            return (Criteria) this;
        }

        public Criteria andProductIsNewLessThan(Byte value) {
            addCriterion("product_is_new <", value, "productIsNew");
            return (Criteria) this;
        }

        public Criteria andProductIsNewLessThanOrEqualTo(Byte value) {
            addCriterion("product_is_new <=", value, "productIsNew");
            return (Criteria) this;
        }

        public Criteria andProductIsNewIn(List<Byte> values) {
            addCriterion("product_is_new in", values, "productIsNew");
            return (Criteria) this;
        }

        public Criteria andProductIsNewNotIn(List<Byte> values) {
            addCriterion("product_is_new not in", values, "productIsNew");
            return (Criteria) this;
        }

        public Criteria andProductIsNewBetween(Byte value1, Byte value2) {
            addCriterion("product_is_new between", value1, value2, "productIsNew");
            return (Criteria) this;
        }

        public Criteria andProductIsNewNotBetween(Byte value1, Byte value2) {
            addCriterion("product_is_new not between", value1, value2, "productIsNew");
            return (Criteria) this;
        }

        public Criteria andProductIsHotIsNull() {
            addCriterion("product_is_hot is null");
            return (Criteria) this;
        }

        public Criteria andProductIsHotIsNotNull() {
            addCriterion("product_is_hot is not null");
            return (Criteria) this;
        }

        public Criteria andProductIsHotEqualTo(Byte value) {
            addCriterion("product_is_hot =", value, "productIsHot");
            return (Criteria) this;
        }

        public Criteria andProductIsHotNotEqualTo(Byte value) {
            addCriterion("product_is_hot <>", value, "productIsHot");
            return (Criteria) this;
        }

        public Criteria andProductIsHotGreaterThan(Byte value) {
            addCriterion("product_is_hot >", value, "productIsHot");
            return (Criteria) this;
        }

        public Criteria andProductIsHotGreaterThanOrEqualTo(Byte value) {
            addCriterion("product_is_hot >=", value, "productIsHot");
            return (Criteria) this;
        }

        public Criteria andProductIsHotLessThan(Byte value) {
            addCriterion("product_is_hot <", value, "productIsHot");
            return (Criteria) this;
        }

        public Criteria andProductIsHotLessThanOrEqualTo(Byte value) {
            addCriterion("product_is_hot <=", value, "productIsHot");
            return (Criteria) this;
        }

        public Criteria andProductIsHotIn(List<Byte> values) {
            addCriterion("product_is_hot in", values, "productIsHot");
            return (Criteria) this;
        }

        public Criteria andProductIsHotNotIn(List<Byte> values) {
            addCriterion("product_is_hot not in", values, "productIsHot");
            return (Criteria) this;
        }

        public Criteria andProductIsHotBetween(Byte value1, Byte value2) {
            addCriterion("product_is_hot between", value1, value2, "productIsHot");
            return (Criteria) this;
        }

        public Criteria andProductIsHotNotBetween(Byte value1, Byte value2) {
            addCriterion("product_is_hot not between", value1, value2, "productIsHot");
            return (Criteria) this;
        }

        public Criteria andProductIsPromoteIsNull() {
            addCriterion("product_is_promote is null");
            return (Criteria) this;
        }

        public Criteria andProductIsPromoteIsNotNull() {
            addCriterion("product_is_promote is not null");
            return (Criteria) this;
        }

        public Criteria andProductIsPromoteEqualTo(Byte value) {
            addCriterion("product_is_promote =", value, "productIsPromote");
            return (Criteria) this;
        }

        public Criteria andProductIsPromoteNotEqualTo(Byte value) {
            addCriterion("product_is_promote <>", value, "productIsPromote");
            return (Criteria) this;
        }

        public Criteria andProductIsPromoteGreaterThan(Byte value) {
            addCriterion("product_is_promote >", value, "productIsPromote");
            return (Criteria) this;
        }

        public Criteria andProductIsPromoteGreaterThanOrEqualTo(Byte value) {
            addCriterion("product_is_promote >=", value, "productIsPromote");
            return (Criteria) this;
        }

        public Criteria andProductIsPromoteLessThan(Byte value) {
            addCriterion("product_is_promote <", value, "productIsPromote");
            return (Criteria) this;
        }

        public Criteria andProductIsPromoteLessThanOrEqualTo(Byte value) {
            addCriterion("product_is_promote <=", value, "productIsPromote");
            return (Criteria) this;
        }

        public Criteria andProductIsPromoteIn(List<Byte> values) {
            addCriterion("product_is_promote in", values, "productIsPromote");
            return (Criteria) this;
        }

        public Criteria andProductIsPromoteNotIn(List<Byte> values) {
            addCriterion("product_is_promote not in", values, "productIsPromote");
            return (Criteria) this;
        }

        public Criteria andProductIsPromoteBetween(Byte value1, Byte value2) {
            addCriterion("product_is_promote between", value1, value2, "productIsPromote");
            return (Criteria) this;
        }

        public Criteria andProductIsPromoteNotBetween(Byte value1, Byte value2) {
            addCriterion("product_is_promote not between", value1, value2, "productIsPromote");
            return (Criteria) this;
        }

        public Criteria andProductSellerNoteIsNull() {
            addCriterion("product_seller_note is null");
            return (Criteria) this;
        }

        public Criteria andProductSellerNoteIsNotNull() {
            addCriterion("product_seller_note is not null");
            return (Criteria) this;
        }

        public Criteria andProductSellerNoteEqualTo(String value) {
            addCriterion("product_seller_note =", value, "productSellerNote");
            return (Criteria) this;
        }

        public Criteria andProductSellerNoteNotEqualTo(String value) {
            addCriterion("product_seller_note <>", value, "productSellerNote");
            return (Criteria) this;
        }

        public Criteria andProductSellerNoteGreaterThan(String value) {
            addCriterion("product_seller_note >", value, "productSellerNote");
            return (Criteria) this;
        }

        public Criteria andProductSellerNoteGreaterThanOrEqualTo(String value) {
            addCriterion("product_seller_note >=", value, "productSellerNote");
            return (Criteria) this;
        }

        public Criteria andProductSellerNoteLessThan(String value) {
            addCriterion("product_seller_note <", value, "productSellerNote");
            return (Criteria) this;
        }

        public Criteria andProductSellerNoteLessThanOrEqualTo(String value) {
            addCriterion("product_seller_note <=", value, "productSellerNote");
            return (Criteria) this;
        }

        public Criteria andProductSellerNoteLike(String value) {
            addCriterion("product_seller_note like", value, "productSellerNote");
            return (Criteria) this;
        }

        public Criteria andProductSellerNoteNotLike(String value) {
            addCriterion("product_seller_note not like", value, "productSellerNote");
            return (Criteria) this;
        }

        public Criteria andProductSellerNoteIn(List<String> values) {
            addCriterion("product_seller_note in", values, "productSellerNote");
            return (Criteria) this;
        }

        public Criteria andProductSellerNoteNotIn(List<String> values) {
            addCriterion("product_seller_note not in", values, "productSellerNote");
            return (Criteria) this;
        }

        public Criteria andProductSellerNoteBetween(String value1, String value2) {
            addCriterion("product_seller_note between", value1, value2, "productSellerNote");
            return (Criteria) this;
        }

        public Criteria andProductSellerNoteNotBetween(String value1, String value2) {
            addCriterion("product_seller_note not between", value1, value2, "productSellerNote");
            return (Criteria) this;
        }

        public Criteria andProductIsCheckIsNull() {
            addCriterion("product_is_check is null");
            return (Criteria) this;
        }

        public Criteria andProductIsCheckIsNotNull() {
            addCriterion("product_is_check is not null");
            return (Criteria) this;
        }

        public Criteria andProductIsCheckEqualTo(Byte value) {
            addCriterion("product_is_check =", value, "productIsCheck");
            return (Criteria) this;
        }

        public Criteria andProductIsCheckNotEqualTo(Byte value) {
            addCriterion("product_is_check <>", value, "productIsCheck");
            return (Criteria) this;
        }

        public Criteria andProductIsCheckGreaterThan(Byte value) {
            addCriterion("product_is_check >", value, "productIsCheck");
            return (Criteria) this;
        }

        public Criteria andProductIsCheckGreaterThanOrEqualTo(Byte value) {
            addCriterion("product_is_check >=", value, "productIsCheck");
            return (Criteria) this;
        }

        public Criteria andProductIsCheckLessThan(Byte value) {
            addCriterion("product_is_check <", value, "productIsCheck");
            return (Criteria) this;
        }

        public Criteria andProductIsCheckLessThanOrEqualTo(Byte value) {
            addCriterion("product_is_check <=", value, "productIsCheck");
            return (Criteria) this;
        }

        public Criteria andProductIsCheckIn(List<Byte> values) {
            addCriterion("product_is_check in", values, "productIsCheck");
            return (Criteria) this;
        }

        public Criteria andProductIsCheckNotIn(List<Byte> values) {
            addCriterion("product_is_check not in", values, "productIsCheck");
            return (Criteria) this;
        }

        public Criteria andProductIsCheckBetween(Byte value1, Byte value2) {
            addCriterion("product_is_check between", value1, value2, "productIsCheck");
            return (Criteria) this;
        }

        public Criteria andProductIsCheckNotBetween(Byte value1, Byte value2) {
            addCriterion("product_is_check not between", value1, value2, "productIsCheck");
            return (Criteria) this;
        }

        public Criteria andGmtCreateIsNull() {
            addCriterion("gmt_create is null");
            return (Criteria) this;
        }

        public Criteria andGmtCreateIsNotNull() {
            addCriterion("gmt_create is not null");
            return (Criteria) this;
        }

        public Criteria andGmtCreateEqualTo(Long value) {
            addCriterion("gmt_create =", value, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateNotEqualTo(Long value) {
            addCriterion("gmt_create <>", value, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateGreaterThan(Long value) {
            addCriterion("gmt_create >", value, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateGreaterThanOrEqualTo(Long value) {
            addCriterion("gmt_create >=", value, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateLessThan(Long value) {
            addCriterion("gmt_create <", value, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateLessThanOrEqualTo(Long value) {
            addCriterion("gmt_create <=", value, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateIn(List<Long> values) {
            addCriterion("gmt_create in", values, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateNotIn(List<Long> values) {
            addCriterion("gmt_create not in", values, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateBetween(Long value1, Long value2) {
            addCriterion("gmt_create between", value1, value2, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateNotBetween(Long value1, Long value2) {
            addCriterion("gmt_create not between", value1, value2, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedIsNull() {
            addCriterion("gmt_modified is null");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedIsNotNull() {
            addCriterion("gmt_modified is not null");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedEqualTo(Long value) {
            addCriterion("gmt_modified =", value, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedNotEqualTo(Long value) {
            addCriterion("gmt_modified <>", value, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedGreaterThan(Long value) {
            addCriterion("gmt_modified >", value, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedGreaterThanOrEqualTo(Long value) {
            addCriterion("gmt_modified >=", value, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedLessThan(Long value) {
            addCriterion("gmt_modified <", value, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedLessThanOrEqualTo(Long value) {
            addCriterion("gmt_modified <=", value, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedIn(List<Long> values) {
            addCriterion("gmt_modified in", values, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedNotIn(List<Long> values) {
            addCriterion("gmt_modified not in", values, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedBetween(Long value1, Long value2) {
            addCriterion("gmt_modified between", value1, value2, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedNotBetween(Long value1, Long value2) {
            addCriterion("gmt_modified not between", value1, value2, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andIsDeletedIsNull() {
            addCriterion("is_deleted is null");
            return (Criteria) this;
        }

        public Criteria andIsDeletedIsNotNull() {
            addCriterion("is_deleted is not null");
            return (Criteria) this;
        }

        public Criteria andIsDeletedEqualTo(Byte value) {
            addCriterion("is_deleted =", value, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedNotEqualTo(Byte value) {
            addCriterion("is_deleted <>", value, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedGreaterThan(Byte value) {
            addCriterion("is_deleted >", value, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedGreaterThanOrEqualTo(Byte value) {
            addCriterion("is_deleted >=", value, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedLessThan(Byte value) {
            addCriterion("is_deleted <", value, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedLessThanOrEqualTo(Byte value) {
            addCriterion("is_deleted <=", value, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedIn(List<Byte> values) {
            addCriterion("is_deleted in", values, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedNotIn(List<Byte> values) {
            addCriterion("is_deleted not in", values, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedBetween(Byte value1, Byte value2) {
            addCriterion("is_deleted between", value1, value2, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedNotBetween(Byte value1, Byte value2) {
            addCriterion("is_deleted not between", value1, value2, "isDeleted");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria implements Serializable {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion implements Serializable {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}